home *** CD-ROM | disk | FTP | other *** search
/ Languguage OS 2 / Languguage OS II Version 10-94 (Knowledge Media)(1994).ISO / gnu / glibc108.zip / glibc108 / manual / examples / setjmp.c < prev    next >
C/C++ Source or Header  |  1994-02-16  |  435b  |  33 lines

  1. #include <setjmp.h>
  2. #include <stdlib.h>
  3. #include <stdio.h>
  4.  
  5. jmp_buf main_loop;
  6.  
  7. void 
  8. abort_to_main_loop (int status)
  9. {
  10.   longjmp (main_loop, status);
  11. }
  12.  
  13. int
  14. main (void)
  15. {
  16.   while (1)
  17.     if (setjmp (main_loop))
  18.       puts ("Back at main loop....");
  19.     else
  20.       do_command ();
  21. }
  22.  
  23.  
  24. void 
  25. do_command (void)
  26. {
  27.   char buffer[128];
  28.   if (fgets (buffer, 128, stdin) == NULL)
  29.     abort_to_main_loop (-1);
  30.   else
  31.     exit (EXIT_SUCCESS);
  32. }
  33.